/**
 * Excel导出
 * 
 * @author XiongChun
 * @since 2010-08-20
 */
Ext.onReady(function() {
	
	
	//定义一个远程数据源
	var remoteStore1=new Ext.data.Store({
		// 获取数据的方式
		proxy : new Ext.data.HttpProxy({
					url : 'fytjDemo.ered?reqCode=queryPrjAreas'
				}),
		// 数据读取器
		reader : new Ext.data.JsonReader({
					totalProperty : 'TOTALCOUNT', // 记录总数
					root : 'ROOT' // Json中的列表数据根节点
				}, [	
				    	{
							name : 'tp_name'
						}, {
							name : 'tp_cd'
						}
					]),
					baseParams : {
						type : 'all'
					}
	});
	remoteStore1.load();
	
	
	var cm = new Ext.grid.ColumnModel([new Ext.grid.RowNumberer(), {
		header : '项目流水号',
		dataIndex : 'prj_sn',
		sortable : true
	}, {
		header : '项目编号',
		dataIndex : 'prj_no',
		hidden : true
	}, {
		header : '项目名称',
		dataIndex : 'prj_name'
	}, {
		header : '预算价',
		dataIndex : 'bud_money',
		renderer:function s(value)
	{
			return "<span style='color:red;'>"+value+"元</span>";
	}
	}, {
		header : '形象进度',
		dataIndex : 'xxjd'
	},{
		header : '结算价',
		dataIndex : 'final_money',
		renderer:function s(value)
		{
				return "<span style='color:red;'>"+value+"元</span>";
		}
	}, {
		header : '付款方式',
		dataIndex : 'cont_pay_way'
	}, {
		header : '应付款比例',
		dataIndex : 'yfkbl'
	}, {
		header : '应付款',
		dataIndex : 'yfk',
		renderer:function s(value)
		{
				return "<span style='color:red;'>"+value+"元</span>";
		}
	}, {
		header : '已付款',
		dataIndex : 'detail_money',
		renderer:function s(value)
		{
				return "<span style='color:red;'>"+value+"元</span>";
		}
	}, {
		header : '未付款',
		dataIndex : 'wfk',
		renderer:function s(value)
		{
				var value=value+"";
				if(value.indexOf("-")==-1)
				{
					return "<span style='color:red;'>"+value+"元</span>";
				}
				else
				{
					return "<span style='color:BB0DCE;font-size:22px;'>"+value+"元</span>";
				}
		}
	}, {
		header : '总价欠付款',
		dataIndex : 'zjqfk',
		renderer:function s(value)
		{
				return "<span style='color:red;'>"+value+"元</span>";
		}
	}, {
		id : '_blank',
		header : '总价欠付比例',
		dataIndex : 'zjqfbl'
	}]);

/**
* 数据存储
*/
var store = new Ext.data.Store({
		proxy : new Ext.data.HttpProxy({
					url : 'fytjDemo.ered?reqCode=find'
				}),
		reader : new Ext.data.JsonReader({
					totalProperty : 'TOTALCOUNT',
					root : 'ROOT'
				}, [{
							name : 'prj_sn'
						}, {
							name : 'prj_no'
						}, {
							name : 'prj_name'
						}, {
							name : 'bud_money'
						}, {
							name : 'xxjd'
						}, {
							name : 'final_money'
						}, {
							name : 'cont_pay_way'
						}, {
							name : 'yfkbl'
						}, {
							name : 'yfk'
						}, {
							name : 'detail_money'
						}, {
							name : 'wfk'
						},{
							name:'zjqfk'
						},
						{
							name:'zjqfbl'
						}])
	});
	/**
	 * 翻页排序时候的参数传递
	 */
	store.on('beforeload', function() {
				this.baseParams = 
				{
						start : 0,
						limit : bbar.pageSize
				};
			});
	//一个下拉列表，用于设置每页显示多少条记录！
	var pagesize_combo = new Ext.form.ComboBox({
				name : 'pagesize',
				hiddenName : 'pagesize',
				typeAhead : true,
				triggerAction : 'all',
				lazyRender : true,
				mode : 'local',
				store : new Ext.data.ArrayStore({
							fields : ['value', 'text'],
							data : [[10, '10条/页'], 
							        [20, '20条/页'],
									[50, '50条/页'], 
									[100, '100条/页'],
									[250, '250条/页'],
									[500, '500条/页']]
						}),
				valueField : 'value',
				displayField : 'text',
				value : '20',
				//设置为不可编辑的！
				editable : false,
				width : 85
			});
	//得到下拉列表当前被选中的值！
	var number = parseInt(pagesize_combo.getValue());
	//每次的修改都会重新加载数据！
	pagesize_combo.on("select", function(comboBox) 
			{
				bbar.pageSize = parseInt(comboBox.getValue());
				number = parseInt(comboBox.getValue());
				store.reload({
							params : 
							{
								start : 0,
								limit : bbar.pageSize
							}
						});
			});

	var bbar = new Ext.PagingToolbar({
				pageSize : number,
				store : store,
				displayInfo : true,
				displayMsg : '显示{0}条到{1}条,共{2}条',
				plugins : new Ext.ux.ProgressBarPager(), // 分页进度条 plugins :
				// new
				// Ext.ux.ProgressBarPager(),
				// // 分页进度条 emptyMsg
				// : "没有符合条件的记录",
				items : ['-', '&nbsp;&nbsp;', pagesize_combo]
			});

	//定义一个远程数据源
	var remoteStore=new Ext.data.Store({
		// 获取数据的方式
		proxy : new Ext.data.HttpProxy({
					url : 'fytjDemo.ered?reqCode=queryMoneyType'
				}),
		// 数据读取器
		reader : new Ext.data.JsonReader({
					totalProperty : 'TOTALCOUNT', // 记录总数
					root : 'ROOT' // Json中的列表数据根节点
				}, [	
				    	{
							name : 'tp_name'
						}, {
							name : 'tp_cd'
						}
					])
	});
	//加载一次否则无法显示！
	remoteStore.load();
	var grid = new Ext.grid.GridPanel({
		title : '<span class="commoncss">费用统计<span style="color:BB0DCE;">（提示：紫色代表为i负数...）</span></span>',
		height : 500,
		// width:600,
		autoScroll : true,
		region : 'center',
		store : store,
		loadMask : {
			msg : '正在加载表格数据,请稍等...'
		},
		stripeRows : true,
		frame : true,
		autoExpandColumn : '_blank',
		cm : cm,
		tbar : ['<span class="commoncss">请选择费用类型:</span>',new Ext.form.ComboBox({
					id :'moneyTypes',
					hiddenName : 'tp_name',
					allowBlank : false, // 是否允许为空
					fieldLabel : '费用类型',
					triggerAction : 'all',
					emptyText : '请选择费用类型',
					store :remoteStore,
					displayField : 'tp_name',
					valueField : 'tp_cd',
					mode : 'local',
					forceSelection : true, // 选中内容必须为下拉列表的子项
					editable : false,
					typeAhead : true,
					resizable : true,
					anchor : '99%'
				}),	'-','<span class="commoncss">开始时间:</span>',
				new Ext.form.DateField
				({
					id : 'start',
					name : 'start',
					emptyText : '开始时间',
					value:new Date(),
					format : 'Y-m-d', // 日期格式化
					maxLength : 10,
					//允许控件触发键盘事件，其实就是方便可以提交，直接按回车也可以提交！
					enableKeyEvents : true,
					//键盘事件的回调方法！
					listeners : 
					{
						specialkey : function(field, e) 
						{
							if (e.getKey() == Ext.EventObject.ENTER) 
							{
								//如果触发的是回车就直接提交！
								queryMenuItem();
							}
						}
					},
					width : 150
				})
					,	'-','<span class="commoncss">结束时间:</span>',
					new Ext.form.DateField
					({
						id : 'end',
						name : 'end',
						emptyText : '结束时间',
						value:new Date(),
						maxLength : 10,
						//允许控件触发键盘事件，其实就是方便可以提交，直接按回车也可以提交！
						enableKeyEvents : true,
						format : 'Y-m-d', // 日期格式化
						//键盘事件的回调方法！
						listeners : 
						{
							specialkey : function(field, e) 
							{
								if (e.getKey() == Ext.EventObject.ENTER) 
								{
									//如果触发的是回车就直接提交！
									queryMenuItem();
								}
							}
						},
						width : 150
					}),'-','<span class="commoncss">所在区域:</span>',
					 new Ext.form.ComboBox({
							id :'areTypes',
							hiddenName : 'PRJ_AREA',
							//allowBlank : false, // 是否允许为空
							fieldLabel : '所在区域',
							triggerAction : 'all',
							emptyText : '--请选择区域--',
							store :remoteStore1,
							displayField : 'tp_name',
							valueField : 'tp_cd',
							mode : 'local',
							forceSelection : true, // 选中内容必须为下拉列表的子项
							editable : false,
							typeAhead : true,
							resizable : true,
							anchor : '99%'
						}),
					{
					text : '查询',
					id:'query',
					iconCls : 'page_findIcon',
					disabled:true,
					handler : function() {
						queryCatalogItem();
					}
				},  '-', {
					text : '导出(简单表头1)',
					id:'daochu',
					disabled:true,
					tooltip : '以仿Ajax方式导出,界面无刷新',
					iconCls : 'page_excelIcon',
					handler : function() 
					{
						//参数制定了调用哪个action的请求路径！
						exportExcel('fytjDemo.ered?reqCode=queryByMoneyType');
					}
				}],
		bbar : bbar
	});
	
	//先初始化一次，即默认情况下进入页面就会列出记录！
	store.load({
				params : {
					start : 0,
					limit : bbar.pageSize,
					moneytype:null,
					startTime:Ext.getCmp('start').getValue(),
					endTime:Ext.getCmp('end').getValue(),
					area:Ext.getCmp('areTypes').getValue()
				}
			});
	//当底部的进度条发生改变时就会自动选中第一条记录！
	bbar.on("change", function() {
		//默认情况下总是选中第一条记录！
				grid.getSelectionModel().selectFirstRow();
			});
	Ext.getCmp("areTypes").on("select",function()
			{
				Ext.getCmp('query').enable();
				Ext.getCmp('daochu').enable();
				if(!Ext.getCmp('query').disabled)
				{
					queryCatalogItem();
				}
			});
	Ext.getCmp("moneyTypes").on("select",function(comboBox)
			{
				Ext.getCmp('query').enable();
				Ext.getCmp('daochu').enable();
				if(!Ext.getCmp('query').disabled)
				{
					queryCatalogItem();
				}
			});
	Ext.getCmp("start").on("select",function(comboBox)
			{
				//alert(Ext.getCmp('start').getValue());
				if(!Ext.getCmp('query').disabled)
				{
					queryCatalogItem();
				}
			});
	Ext.getCmp("end").on("select",function(comboBox)
			{
				if(!Ext.getCmp('query').disabled)
				{
					queryCatalogItem();
				}
			});
	/**
	 * 布局
	 */
	var viewport = new Ext.Viewport({
				layout : 'border',
				items : [grid]
			});
/*//导出excel
	function daochu()
	{
		alert("正在导出文件！");
		Ext.Ajax.request({
			url : 'fytjDemo.ered?reqCode=queryByMoneyType',
			failure : function(response) {
				hideWaitMsg();
				Ext.Msg.alert('提示', "准备报表数据对象发生错误,请检查!");
			}
		});
	}*/
	/**
	 * 查询医院收费目录
	 */
	function queryCatalogItem() {
		store.load({
					params :
					{
						start : 0,
						limit : bbar.pageSize,
						moneytype:Ext.getCmp('moneyTypes').getValue(),
						startTime:Ext.getCmp('start').getValue(),
						endTime:Ext.getCmp('end').getValue(),
						area:Ext.getCmp('areTypes').getValue()
					}
				});
	}

});